home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue25 / speed / UnitDataModule.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-05-18  |  2.7 KB  |  96 lines

  1. unit UnitDataModule;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   DB, DBTables;
  8.  
  9. type
  10.   TDataModule2 = class(TDataModule)
  11.     Database1: TDatabase;
  12.     DataSource1: TDataSource;
  13.     Table1: TTable;
  14.     StoredProcGetBudgetInfo: TStoredProc;
  15.     Table1CUST_NO: TIntegerField;
  16.     Table1CUSTOMER: TStringField;
  17.     Table1CONTACT_FIRST: TStringField;
  18.     Table1CONTACT_LAST: TStringField;
  19.     Table1PHONE_NO: TStringField;
  20.     Table1ADDRESS_LINE1: TStringField;
  21.     Table1ADDRESS_LINE2: TStringField;
  22.     Table1CITY: TStringField;
  23.     Table1STATE_PROVINCE: TStringField;
  24.     Table1COUNTRY: TStringField;
  25.     Table1POSTAL_CODE: TStringField;
  26.     Table1ON_HOLD: TStringField;
  27.     procedure DataModule2Create(Sender: TObject);
  28.     procedure Database1Login(Database: TDatabase; LoginParams: TStrings);
  29.     procedure DataSource1StateChange(Sender: TObject);
  30.   private
  31.     { Private declarations }
  32.   public
  33.     { Public declarations }
  34.   end;
  35.  
  36. var
  37.   DataModule2: TDataModule2;
  38.  
  39. function GetNetUserName: String;
  40.  
  41. implementation
  42.  
  43. uses DBIProcs, DBIErrs, DBITypes, UnitMainForm, UnitStartTwoThreads;
  44.  
  45. {$R *.DFM}
  46.  
  47. function GetNetUserName: String;
  48. begin
  49.    SetLength(Result, dbiMaxUserNameLen + 1);
  50.    // Get network user name and call Check to generate an exection if an error
  51.    Check(DbiGetNetUserName(PChar(Result)));
  52.    SetLength(Result, StrLen(PChar(Result)));
  53. end;
  54.  
  55.  
  56. procedure TDataModule2.DataModule2Create(Sender: TObject);
  57. begin
  58.    // Maintain temporary database connections
  59.    Session.KeepConnections := False;
  60.    if Database1.KeepConnection = False then showmessage('False');
  61.    StoredProcGetBudgetInfo.Prepare;
  62. end;
  63.  
  64. procedure TDataModule2.Database1Login(Database: TDatabase;
  65.   LoginParams: TStrings);
  66. begin
  67.      // Provide automatic login if know user
  68.      if GetNetUserName='DAVID' then begin
  69.         LoginParams.Values['USER NAME'] := 'SYSDBA';
  70.         LoginParams.Values['PASSWORD'] := 'masterkey';
  71.      end;
  72. end;
  73.  
  74. procedure TDataModule2.DataSource1StateChange(Sender: TObject);
  75. var
  76.    State: string;
  77. begin
  78.      Case DataSource1.State of
  79.           dsInactive:       State:= 'Inactive';
  80.           dsBrowse:         State:= 'Browse';
  81.           dsEdit:           State:= 'Edit';
  82.           dsInsert:         State:= 'Insert';
  83.           dsSetKey:         State:= 'SetKey';
  84.           dsCalcFields:     State:= 'CalcFields';
  85.           dsUpdateNew:      State:= 'UpdateNew';
  86.           dsUpdateOld:      State:= 'UpdateOld';
  87.           dsFilter:         State:= 'Filter';
  88.      else
  89.          State:= 'Unknown';
  90.      end;
  91.      if Assigned (frMainForm) then
  92.         frMainForm.laDataSourceState.Caption:='State: '+State;
  93. end;
  94.  
  95. end.
  96.